package com.max.mysql.druid;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import com.max.mysql.utils.JDBCPoolUtils;

import javax.sql.DataSource;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Properties;

public class DruidDemo {

    public static void main(String[] args) {
//        druidAuto();
        druidMyDefine();
    }

    /**
     * Druid的使用:
     * * 配置方式设置参数
     * Druid配置方式可以使用属性文件配置的。
     * * 文件名称没有规定但是属性文件中的key要一定的。
     */
    public static void druidAuto(){
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        try{
            // 使用连接池：
            // 从属性文件中获取：
            Properties properties = new Properties();
            properties.load(new FileInputStream("src/druid.properties"));
            DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
            // 获得连接：
//			conn = JDBCUtils.getConnection();
            conn = dataSource.getConnection();
            // 编写SQL:
            String sql = "select * from droi_emp";
            // 预编译SQL:
            pstmt = conn.prepareStatement(sql);
            // 设置参数:
            // 执行SQL:
            rs = pstmt.executeQuery();
            while(rs.next()){
                System.out.println("查询成功");
            }
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            JDBCPoolUtils.release(rs, pstmt, conn);
        }
    }

    /**
     * Druid的使用:
     * * 手动设置参数的方式
     */
    public static void druidMyDefine(){
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        try{
            // 使用连接池：
            DruidDataSource dataSource = new DruidDataSource();
            // 手动设置数据库连接的参数:
            dataSource.setDriverClassName("com.mysql.jdbc.Driver");
            dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/droi");
            dataSource.setUsername("root");
            dataSource.setPassword("123456");
            // 获得连接：
//			conn = JDBCUtils.getConnection();
            conn = dataSource.getConnection();
            // 编写SQL:
            String sql = "select * from droi_emp";
            // 预编译SQL:
            pstmt = conn.prepareStatement(sql);
            // 设置参数:
            // 执行SQL:
            rs = pstmt.executeQuery();
            while(rs.next()){
                System.out.println("查询成功");
            }
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            JDBCPoolUtils.release(rs, pstmt, conn);
        }
    }
}
